package com.acquisition.param.service;

import java.util.List;
import java.util.Map;

import com.acquisition.param.domain.Param;

/**
 * 设备参数
 * 业务逻辑层
 *
 * @author wuqiwei
 * @date 2020/11/20
 */
public interface ParamService {

	/**
	 * 保存对象
	 *
	 * @param param param
	 * @return 返回保存成功后主键id值
	 */
	int save(Param param);

	/**
	 * 根据id删除
	 *
	 * @param id id
	 * @return 1-成功
	 */
	int remove(int id);

	/**
	 * 根据id更新
	 *
	 * @param param param
	 * @return 1-成功
	 */
	int update(Param param);

	/**
	 * 根据key修改value和type
	 *
	 * @param key key
	 * @param value value
	 * @param type 0-未上传，需要上传；1-已上传，无需上传
	 * @return 1-成功
	 */
	int update(String key, String value, int type);

	/**
	 * 获取单个对象
	 *
	 * @param id id
	 * @return Param
	 */
	Param get(int id);

	/**
	 * 获取单个对象
	 *
	 * @param key key
	 * @return Param
	 */
	Param get(String key);

	/**
	 * 根据key获取value
	 *
	 * @param key key
	 * @return value
	 */
	String getValue(String key);

	/**
	 * 条件查询
	 *
	 * @param param where条件
	 * @return List<Param>
	 */
	List<Param> queryByExample(Map<String, Object> param);

	/**
	 * 根据type查询
	 *
	 * @param type 0-需要上传，1-无需上传
	 * @return List<Param>
	 */
	List<Param> queryByExample(int type);

	/**
	 * 接收服务器发送的所有参数<br>
	 * 并保存到数据库<br>
	 *
	 * @param params 服务器传过来的数据
	 * @return 1-成功
	 */
	int receiveAllParamOfServer(String params);

	/**
	 * 接收服务器发送的参数<br>
	 * 并保存到数据库<br>
	 *
	 * @param params 服务器传过来的数据
	 * @return 1-成功
	 */
	int receiveParamOfServer(String params);

	/**
	 * 获取发送给服务器的参数<br>
	 *
	 * @param param param
	 * @return 要发送的json字符串
	 */
	String getParamOfServer(Param param);

}
